package cn.dai;

/**
 * @author ArkD42
 * @file 1 - Java基础语法
 * @create 2020 - 04 - 20 - 11:08
 */
public enum EnumerationClass implements Plug{
    //  枚举类的枚举对象，必须在第一行声明，如果没有，也要使用一个分号结束，表示没有枚举对象
    STATUS01("状态对象01",1001){

        @Override
        public void plugMethod(){
            System.out.println("匿名实现接口方法1");
        }
    },
    STATUS02("状态对象02",1002){

        @Override
        public void plugMethod(){
            System.out.println("匿名实现接口方法2");
        }
    },
    STATUS03("状态对象03",1003){

        @Override
        public void plugMethod(){
            System.out.println("匿名实现接口方法3");
        }
    },
    STATUS04("状态对象04",1004){

        @Override
        public void plugMethod(){
            System.out.println("匿名实现接口方法4");
        }
    };

    //  枚举对象也可以声明字段
    private String enumName;
    private Integer enumID;

    // 枚举对象也可以有构造器，这个构造器不可被外界访问
    EnumerationClass(String enumName, Integer enumID) {
        this.enumName = enumName;
        this.enumID = enumID;
    }

    // 也可以声明setter & getter
    public String getEnumName() { return enumName; }
    public void setEnumName(String enumName) { this.enumName = enumName; }
    public Integer getEnumID() { return enumID; }
    public void setEnumID(Integer enumID) { this.enumID = enumID; }

    @Override
    public String toString() {
        return "EnumerationClass{" +
                "enumName='" + enumName + '\'' +
                ", enumID=" + enumID +
                '}';
    }


}

// 声明一个接口
interface Plug{
    void plugMethod(); // 接口方法
}